Field
The disclosed embodiments relate to data models. More specifically, the disclosed embodiments relate to graph-based data models for partitioned data.
Related Art
Content on electronic devices is commonly synchronized, stored, shared, and/or backed up on online content management systems such as file hosting services, cloud storage services, and/or remote backup services. For example, images, audio, video, documents, executables, and/or other types of content may be stored on a network-enabled electronic device such as a personal computer, laptop computer, portable media player, tablet computer, and/or mobile phone. A user of the electronic device may also have a user account with a cloud storage service that allows copies of the content to be stored and/or backed up with the cloud storage service. The cloud storage service may further transmit the copies to other electronic devices of the user and/or other users who are authorized to access the files, thus synchronizing the content between the cloud storage service and electronic devices.
In addition, the widespread creation, transmission, sharing, and/or use of content through an online content management system may require the partitioning of a data model of the content, users, and/or other entities associated with the online content management system across multiple computer systems and/or storage mechanisms. For example, data for multiple users, content items, groups of users, and/or collections of content items in the online content management system may be tracked and/or accessed using a data model that is stored in a relational database. As use of the online content management system increases, the data model may outgrow the storage capacity of the computer system hosting the relational database and require partitioning among multiple computer systems and/or database instances.
Unfortunately, partitioning of conventional relational databases may be difficult and/or inefficient. For example, partitioning of a Structured Query Language (SQL) database may require manual rewriting of code for the SQL database, which may be tedious and/or cumbersome. On the other hand, structured storage mechanisms that are easily partitioned may not meet requirements for concurrent access to online content management systems. For example, a NoSQL database that is optimized for scalability and availability may not support the atomicity, consistency, isolation, and durability (ACID) guarantees provided by relational databases. Consequently, access to data in online content management systems may be facilitated by mechanisms for improving the scalability, reliability, and integrity of data models of the data.